package com.zhangzhan.gulimallorder;

import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;


/**
 * rabbitmq
 *  自动配置：RabbitAutoConfiguration
 *  bean：
 *  RabbitTemplate ： 操作生产者消费者、队列绑定交换机等  （消息发送处理组件）
 *  AmqpAdmin ： 操作交换机队列等  （管理组件）
 *  交换机类型：
 *      常用三种：点对点、广播、模型
 *      direct 点对点：使用时生产者必须值得完整的路由key已定位到队列
 *      fanout 广播：使用时生产者不需要值得key信息，交换器路由时会路由所有的被绑定的队列中
 *      topic 模型（模糊匹配路由key）：在创建交换机和队列的绑定关系时router-key 可以使用两个通配符 （#、*）#代表可以匹配任意单词可以为空，*代表可以匹配任意单词不可以为空
 *
 */
@SpringBootApplication
@EnableRabbit
@EnableDiscoveryClient
@EnableFeignClients
public class GulimallOrderApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallOrderApplication.class, args);
    }

}
